package com.maxjay.component.metadata.core;

import com.maxjay.component.metadata.model.Entity;

public interface EntityFactory {
	
	/**
	 * 取得实体对象（首先从缓存中取得，如不存在则重新加载）
	 * 
	 * @param entityId
	 * @return
	 */
	Entity getEntity(String entityId);

	/**
	 * 重新加载实体对象
	 * 
	 * @param entityId
	 * @return
	 */
	Entity loadEntity(String entityId);

	/**
	 * 实体是否已加载
	 * 
	 * @param entityId
	 * @return
	 */
	boolean isLoadedEntity(String entityId);
	
	/**
	 * 重新加载所有实体对象
	 */
	void reloadAll();

	/**
	 * 销毁工厂
	 */
	void destroy();
}
